Many computer devices including hand-held personal computers, palm-size personal computers, scanners, printers and digital cameras are configured to communicate with a desktop computer through a communications port. For example, each such device typically has a serial port which connects via a cable or infrared signals a counterpart port on the desktop computer. To exchange information with the desktop computer, each of these devices require that the desktop computer run a specific communications program corresponding to that device. Normally, the communications program occupies the communications port for the duration of its execution. At the same time, it is desirable that the communications program be running at all times so that the user may easily connect on demand and simply use the device, instead of having to locate the appropriate application, execute it, and then connect the device.
While this is adequate when the user has a single device, users with more than one device are unable to run multiple such programs simultaneously, since each tries to exclusively access the communications port at the same time. As a result, users of multiple devices heretofore have had to manually close the running communication program before running another communication program, or manually configure certain communications settings. Some programs, such as in association with a serial mouse, cannot easily be shut down. In short, the user cannot simply unplug one device, plug in another, and get the communications to work through intuitive user action on the computer.